package java_thinking.unit_13._13_6;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Description :
 * \b 就是用在你匹配整个单词的时候。 如果不是整个单词就不匹配。 你想匹配 I 的话，你知道，很多单词里都有I的，但我只想匹配I，就是“我”，这个时候用 \bI\b
 *
 * \B就是反过来，代表非字间。 类似\d代表数字， \D代表非数字。
 *
    ^[aeiou] 匹配字符串开头是aeiou的其中一个字母
    \s+[aeiou] 匹配一个或多个空格后面跟着aeiou的其中一个字母
    | [或者]操作符
    (^[aeiou])|(\s+[aeiou]) 匹配两种情况的一种

    (?i)在Java下意思为：“启用不区分大小写的匹配”
 * @author: cww
 * @DateTime: 2019-03-25 22:32
 */

public class E11 {
    public static void main(String[] args) {
        Pattern p = Pattern.compile(
                "(?i)((^[aeiou])|(\\s+[aeiou]))\\w+?[aeiou]\\b");
        Matcher m = p.matcher("Arline ate eight apples and " +
                "one orange while Anita hadn't any");
        while(m.find()) {
            System.out.println("Match \"" + m.group() + "\" at positions " + m.start() + "-" + (m.end() - 1));
        }
    }
}
